iT邦幫忙

2024 iThome 鐵人賽

DAY 27
0
Python

自主學習Python網路爬蟲-PTT爬蟲、Hahow爬蟲、Yahoo電影爬蟲實作系列 第 27

Day27 藉由影片學習Python網路爬蟲-PTT爬蟲、Hahow爬蟲、Yahoo電影爬蟲實作

  • 分享至 

  • xImage
  •  

今天要分享的是網路爬蟲(Web Crawler)的基本概念與PTT爬蟲實作
#使用的網頁是PTT的NBA版
首先是網路爬蟲(Web Crawler)的基本概念
網際網路的資料傳遞是網狀分布,網路爬蟲的代表圖示是蜘蛛,為了獲取資料而在網路中爬行尋找並收集所需的資訊,即為網路爬蟲。
原始碼:當造訪PTT的NBA版網址時,伺服器會回傳要顯示的網頁(格式為HTML),而此HTML檔案就是網頁的原始碼
#使用Python跟Request函式庫來取得HTML進行資料分析
反爬蟲:伺服器阻止爬蟲爬取資料的手段,常見的方式如檢查請求的Header、輸入驗證碼、滑動解鎖(驗證是否為人類)
#要模仿使用者發出的請求Header的話,需先使用瀏覽器觀察使用者發出的請求(Request)
接下來是PTT爬蟲實作
#爬蟲主要流程:
決定從網頁中爬取哪些資料=>分析網頁原始碼/提取資料=>用Python撰寫爬蟲,此步驟分為下載網頁(Requests)與分析網頁(BeautifulSoup)=>儲存成結構化格式
一般的網頁會去檢查你的User Agent是否為真人,如果是機器人、爬蟲的話就會被阻擋,所以加入User Agent模仿使用者是一種常見的爬蟲技巧
#截圖中包含詳細的手寫註解供參
https://ithelp.ithome.com.tw/upload/images/20241016/20167787f5I9ivpUdy.jpg
https://ithelp.ithome.com.tw/upload/images/20241016/20167787P8vhtXe1wI.jpg
https://ithelp.ithome.com.tw/upload/images/20241016/20167787260rXHxIjH.jpg
存成JSON格式,程式碼如下
JSON格式:通常用在前後端API的交換,想獲取其他伺服器的資料或想把資料提供給別人時可使用此格式
https://ithelp.ithome.com.tw/upload/images/20241016/20167787W0hvtSIzft.jpg
https://ithelp.ithome.com.tw/upload/images/20241016/20167787JeDSH2lZ2v.jpg
執行結果為(在pythonCrawler中會出現ptt_nba_data.json檔案):
https://ithelp.ithome.com.tw/upload/images/20241016/20167787dlVTIwfZxW.jpg
如果執行成功,會顯示此行:
https://ithelp.ithome.com.tw/upload/images/20241016/20167787DaI6SRO2jX.jpg
存成Excel格式,程式碼如下(大致上跟JSON相似,只有標出的地方需要修改)
https://ithelp.ithome.com.tw/upload/images/20241016/20167787m4tPEzZBdh.jpg
https://ithelp.ithome.com.tw/upload/images/20241016/20167787WCv5KnGwn6.jpg
執行結果為(在pythonCrawler中會出現ptt_nba.xlsx檔案,點擊後便會跑出此頁面):
https://ithelp.ithome.com.tw/upload/images/20241016/201677874pe1oI1nGG.jpg


以上是我今天的分享,謝謝大家!
參考網址:https://www.youtube.com/watch?v=1PHp1prsxIM&list=LL&index=5


上一篇
Day26 藉由教學影片學習HTML與CSS基礎
下一篇
Day28 藉由影片學習Python網路爬蟲-PTT爬蟲、Hahow爬蟲、Yahoo電影爬蟲實作
系列文
自主學習Python網路爬蟲-PTT爬蟲、Hahow爬蟲、Yahoo電影爬蟲實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言